<!-- use registry -->
<div>
  <div class="form-group" ng-if="$ctrl.model.UseRegistry">
    <label for="image_registry" class="control-label text-left" ng-class="$ctrl.labelClass"> Registry </label>
    <div ng-class="$ctrl.inputClass">
      <select
        ng-options="registry as registry.Name for registry in $ctrl.registries track by registry.Id"
        ng-model="$ctrl.model.Registry"
        id="image_registry"
        class="form-control"
        data-cy="component-registrySelect"
      ></select>
    </div>
    <label for="image_name" ng-class="$ctrl.labelClass" class="margin-sm-top control-label text-left">Image</label>
    <div ng-class="$ctrl.inputClass" class="margin-sm-top">
      <div class="input-group">
        <span class="input-group-addon" id="registry-name">{{ $ctrl.displayedRegistryURL() }}</span>
        <input
          type="text"
          class="form-control"
          aria-describedby="registry-name"
          uib-typeahead="image for image in $ctrl.availableImages | filter:$viewValue | limitTo:5"
          ng-model="$ctrl.model.Image"
          name="image_name"
          placeholder="e.g. my-image:my-tag"
          ng-change="$ctrl.onImageChange()"
          required
          data-cy="component-imageInput"
        />
        <span ng-if="$ctrl.isDockerHubRegistry()" class="input-group-btn">
          <a
            href="https://hub.docker.com/search?type=image&q={{ $ctrl.model.Image | trimshasum | trimversiontag }}"
            class="btn btn-default"
            title="Search image on Docker Hub"
            target="_blank"
          >
            <i class="fab fa-docker"></i> Search
          </a>
        </span>
      </div>
    </div>
  </div>
  <!-- ! use registry -->
  <!-- don't use registry -->
  <div ng-if="!$ctrl.model.UseRegistry">
    <div class="form-group">
      <span class="small">
        <p class="text-muted" style="margin-left: 15px">
          <i class="fa fa-exclamation-circle blue-icon" aria-hidden="true" style="margin-right: 2px"></i>
          When using advanced mode, image and repository <b>must be</b> publicly available.
        </p>
      </span>
      <label for="image_name" ng-class="$ctrl.labelClass" class="control-label text-left">Image </label>
      <div ng-class="$ctrl.inputClass">
        <input type="text" class="form-control" ng-model="$ctrl.model.Image" name="image_name" placeholder="e.g. registry:port/my-image:my-tag" required />
      </div>
    </div>
  </div>
  <!-- ! don't use registry -->
  <!-- info message -->
  <div class="form-group" ng-show="$ctrl.form.image_name.$invalid">
    <div class="col-sm-12 small text-warning">
      <div ng-messages="$ctrl.form.image_name.$error">
        <p ng-message="required">
          <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Image name is required.
          <span ng-if="$ctrl.canPull">Tag must be specified otherwise Portainer will pull all tags associated to the image.</span>
        </p>
      </div>
    </div>
  </div>
  <!-- ! info message -->
  <div class="form-group">
    <div class="col-sm-12">
      <p>
        <a class="small interactive" ng-if="!$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = true;">
          <i class="fa fa-database space-right" aria-hidden="true"></i> Simple mode
        </a>
        <a class="small interactive" ng-if="$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = false;">
          <i class="fa fa-globe space-right" aria-hidden="true"></i> Advanced mode
        </a>
      </p>
    </div>
  </div>

  <div ng-transclude></div>

  <por-image-registry-rate-limits
    ng-if="$ctrl.checkRateLimits && $ctrl.isDockerHubRegistry()"
    endpoint="$ctrl.endpoint"
    registry="$ctrl.model.Registry"
    set-validity="$ctrl.setValidity"
    is-authenticated="$ctrl.model.Registry.Authentication"
    is-admin="$ctrl.isAdmin"
    registry-id="$ctrl.model.Registry.Id"
  >
  </por-image-registry-rate-limits>
</div>
